home *** CD-ROM | disk | FTP | other *** search
/ Compendium Deluxe 2 / LSD and 17bit Compendium Deluxe - Volume II.iso / a / prog / misc / frefs11.lha / FetchRefs / Rexx / GoFetchRefs.aed next >
Text File  |  1994-10-28  |  2KB  |  78 lines

  1. /*   $VER: GoFetchRexx.aed 1.1 (28.10.94)
  2. **
  3. **   ARexx script for AmokEd to invoke FetchRefs.
  4. */
  5.  
  6. OPTIONS RESULTS
  7. caller = ADDRESS()
  8.  
  9. /* Static part of the editor's ARexx port name. That is, the name before any
  10.  * suffixes (like '.1') are appended.
  11.  */
  12. editorname = 'AmokEd'
  13.  
  14. /* Exit if we're not called from the editor */
  15. IF (LEFT(caller, LENGTH(editorname)) ~= editorname) then
  16.     EXIT 10
  17.  
  18. /* Get the function name from editor (get current word). */
  19. "scanf `%[abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890_#?]s'"
  20. 'getval $scanf'
  21. function = result
  22.  
  23. /* Define a temporary filename to put the reference into */
  24. cutat = VERIFY(function, "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890_")
  25. if cutat > 0 THEN
  26.     basename = LEFT(function, cutat - 1)
  27. ELSE
  28.     basename = function
  29.  
  30. filename = 'T:FR_ 'basename
  31.  
  32. /* It doesn't matter whether we want a taglist, varargs og whatever function */
  33. IF RIGHT(function, 7) = "TagList" THEN
  34.     function = LEFT(function, LENGTH(function) - 7)
  35. ELSE IF RIGHT(function, 4) = "Tags" THEN
  36.     function = LEFT(function, LENGTH(function) - 4)
  37. ELSE IF RIGHT(function, 1) = "A" THEN
  38.     function = LEFT(function, LENGTH(function) - 1)
  39.  
  40. /* Now actually get the reference */
  41. ADDRESS 'FETCHREFS'
  42. FR_GET function || '(%|Tags|TagList|A)' filename CASE FILEREF
  43. gotoline = rc2
  44.  
  45. /* Address editor again to load the file or report error */
  46. ADDRESS VALUE caller
  47.  
  48. IF rc ~= 0 THEN DO
  49.         /* Skip if the error was '...!' (actually 'Aborted!'). This occours
  50.          * whenever the 'select from what file' window is closed, which is
  51.          * not really an error.
  52.          */
  53.         IF RIGHT(rc2, 1) = '!' THEN
  54.             EXIT 0
  55.  
  56.         /* Report the error (obtained from FetchRefs) in the editor. */
  57.         Title '('RC2')'
  58.  
  59.         /* Return that it was a failure */
  60.         EXIT 10
  61. END
  62. ELSE DO
  63.         /* Make the editor open a new window and load the autodoc into it. */
  64.         NewWindow
  65.         Ping 9 Pong 9  /* AmokEd bug fix; kludge to activate the new window */
  66.         NewFile filename
  67.  
  68.         /* Jump to the provided line */
  69.         IF gotoline ~= 0 THEN
  70.             'Goto' gotoline
  71.  
  72.         /* Delete the autodoc file */
  73.         ADDRESS COMMAND 'C:Delete >NIL:' filename
  74.  
  75.         EXIT 0
  76. END
  77.  
  78.